﻿using System;
using System.Data.SqlClient;
using AuctionSite.Entities;

namespace AuctionSite.DAL
{
    public class UsuarioDAL
    {
        public Usuario Incluir(Usuario usuario)
        {
            SqlConnection cn = new SqlConnection();
            try
            {

                cn.ConnectionString = Dados.StringDeConexao;
                //command
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = cn;
                //cmd.CommandText = "INSERT INTO usuarios (usu_nome,usu_apelido,usu_tel,usu_cel,usu_endereco,usu_cpf,usu_email,usu_senha,usu_data_cadastro) VALUES (usuario.Usu_nome, usuario.Usu_apelido, usuario.Usu_tel,usuario.Usu_cel,usuario.Usu_endereco,usuario.Usu_cpf,usuario.Usu_email,usuario.Usu_senha,usuario.Usu_data_cadastro)";
                cmd.CommandText = "INSERT INTO usuarios (usu_nome,usu_apelido,usu_tel,usu_cel,usu_endereco,usu_cpf,usu_email,usu_senha,usu_ativo,usu_data_cadastro, usu_tipo) VALUES (@usu_nome,@usu_apelido,@usu_tel,@usu_cel,@usu_endereco,@usu_cpf,@usu_email,@usu_senha,@usu_ativo,@usu_data_cadastro,@usu_tipo);select @@IDENTITY;";

                cmd.Parameters.AddWithValue("@usu_nome", usuario.Nome);
                cmd.Parameters.AddWithValue("@usu_apelido", usuario.Apelido);
                cmd.Parameters.AddWithValue("@usu_tel", usuario.Telefone);
                cmd.Parameters.AddWithValue("@usu_cel", usuario.Celular);
                cmd.Parameters.AddWithValue("@usu_endereco", usuario.Endereco);
                cmd.Parameters.AddWithValue("@usu_cpf", usuario.CPF);
                cmd.Parameters.AddWithValue("@usu_email", usuario.Email);
                cmd.Parameters.AddWithValue("@usu_senha", usuario.Senha);
                cmd.Parameters.AddWithValue("@usu_ativo", usuario.Ativo ? "T" : "F");
                cmd.Parameters.AddWithValue("@usu_data_cadastro", usuario.DataCadastro);
                cmd.Parameters.AddWithValue("@usu_tipo", usuario.TipoUsuario);

                cn.Open();
                usuario.Id = Convert.ToInt32(cmd.ExecuteScalar());

                return usuario;
            }
            catch (SqlException ex)
            {
                throw new Exception("Servidor SQL Erro:" + ex.Number);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro:" + ex.Message);
            }
            finally
            {
                cn.Close();
            }
        }
    }
}
